 
import std.stdio;
import std.traits;
import std.typecons;
class A 
{
    auto get(T)() if(isBasicType!T)
    {
        return T.init;
    }
}

class B
{
    auto get(T : int)(){return 0;}
    auto get(T : A)(){return null;}
    auto get(T : double)(){return 1.0001;}
}



void main()
{
    auto a = Nullable!B(null);// = int.init;
    writeln("A has : get!int : ", hasMember!(A, "get"));
    writeln("is NUll: ", a.isNull());
    writeln(typeof(a).stringof);
    B b = a;
    writeln(typeof(b).stringof);
    writeln("is true : ", is(typeof(a) == B));
}
